home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
language
/
lambdoc.arc
/
ATARI.MAN
next >
Wrap
Text File
|
1989-03-15
|
36KB
|
801 lines
**************************************************************************
[LAMBDA].1.38a.ATARI.ST [890309][\man\atari.man]: ATARI.ST Technical Notes
**************************************************************************
--------------------------------------------------------------------------
[LAMBDA.TN.000].ATARI.ST.[1.37][890226] BOOTing LAMBDA, SHELL alternatives
--------------------------------------------------------------------------
0 CURRENT VERSION:
LAMBDA.ATARI.ST [1.39a][890311][CC: SOZOBON <1.01: 1988>][LIBC: dLibs 1.2]
1 INTRODUCTION.
LAMBDA is a lambda-calculus/combinatory-logic interpreter and combinatory-
code generator. The present version [ATARI.ST][1.3X] of LAMBDA has a built-
in line-editor [EDIT: derived from Ken Thompson's ED] and an internal shell
[META], incorporating a minimal number of TOS-supported commands/functions.
General information about ["type-free"] lambda-calculi and combinators can
be recovered from the bibliography listed in the LAMBDA REFERENCE MANUAL
[see: \man\lambda.man].
Roughly speaking, lambda-calculus is a theoretical tool/formalism equivalent
to a Turing machine, as regards its definability power. In practice, lambda-
calculus techniques have been also used, during the last ten years, in
compiler-design for several functional programming languages, in automated
reasoning [design of proof-assistants and proof-checkers] and in expert
systems [proof-pattern recognition].
In a sense, the lambda-calculus is at the root of the modern computability
theory and of our computing engines, whether ALGOLoidal or not [= merely
FUNCtional]. As a mere theoretical tool, it has also a certain MUSEAL value,
whence the idea to put it in the same environment with another master-piece
of computer art: Ken Thompson's ED [the root of the UN*X-like editors and
pattern-matching tools].
1 CONTENTS.
The present archive contains the last ATARI.ST version of the binary,
general LAMBDA-documentation [default in: \man\lambda.man], a list of
system-specific features [LAMBDA.ATARI.ST: Technical Notes; default
edited in: \man\atari.man], applying to this implementation and,
optionally, a public domain Bourne-like SHELL [if present, either
\bin\gsh.prg or else ARChived in: \etc\pd_shell].
NOTE: MACintosh [MFS], MSDOS, UN*X [BSD] as well as UN*X-like [e. g.
MINIX] variants of the present implementation are also available.
2 THE PUBLIC DOMAIN SHELL.
The SHELL interpreter [if present, in: \bin] and the corresponding
documentation [if present, in: \doc] are identified as:
BIN: GSH.PRG = GULAM, by Prabhaker Mateti, BETA-test: 1.03.04.05.
NB: The binary is patched according to a procedure described
in the [GSH] DIGEST in order to fit the ATARI.ST UK-KEYBOARD
settings. Archived is also the original US-KEYBOARD variant,
as posted on the [UUNET].NEWS [last: January 1989].
MAN: A REFERENCE MANUAL FOR GULAM (c) 1987 Prabhaker Mateti,
DOC: [GSH] PROFILES: sample initialization scripts for GULAM,
DOC: [GSH] DIGEST: [UUNET].NEWS discussions [1987-88] around GULAM.
Both LAMBDA and the SHELL are stand-alone programs. Other Bourne-like
SHELLs can be used in conjunction with LAMBDA [see: section 5 below].
NOTE: Since the SHELL interpreter identified here as GSH.PRG, as
well as the appended SHELL documenation have been posted several
times already on the [UUNET].NEWS.[comp.binaries.atari.st], the
LAMBDA-package archived here may NOT contain the SHELL.
The ATARI.ST version of LAMBDA identifies a SHELL according to specific
internal conventions ["shell-types"], as described below. Several [non-
public domain] software-alternatives are listed later in these notes.
3 BOOTING LAMBDA: THE "PRIVATE" ENVIRONMENT.
BOOTing LAMBDA is a system-specific operation. Described here are only
the ATARI.ST modes. (This applies to any ATARI.ST [MEGA] configuration.)
While BOOTing it on ATARI.ST, LAMBDA initializes a "private" environment
consisting of the following variables (below, a <drive>-id is as identified
by TOS; it can be a physical volume, a ram-disk, a hard-disk partition,
etc.):
$HOME = {home-drive:}
= HOME- [and/or BOOT-]drive id for LAMBDA,
NB: if any, the $SHELL is also located on $HOME
$BIN = {bin-drive:}\bin\
= directory of executables accessible from LAMBDA
NB: by default, the system $EDITOR is located on $BIN
$LIB = {lib-drive:}\lib\
= directory for various libraries,
default location for the alternate font-files
$LIB\<font-name>.fnt [must be FED-format]
$TMP = {tmp-drive:}\tmp\
= directory for temporary files,
NB: used only by LAMBDA's built-in EDITor
$SHELL = {home-drive:}\bin\<shell-type>sh.prg
NB: <shell-type> ranges over {a,b,c,g,m,s}
$EDITOR = {bin-drive:}\bin\ed.prg
= system editor
NB: this can be anything, within reason, if you
don't like LAMBDA's built-in EDITor.
In order to have full compatibility with the different "environment styles"
supported by the ATARI.ST machines, these "environmental" variables are
NEVER EXPORTED. Communication with the environment of the external SHELL
must be insured separately, by customizing as appropriate the current SHELL's
initialization script (running examples for several popular ATARI.ST shell
interpreters are also included in the archive).
LAMBDA recognizes its [physical or environmental] BOOT-location and, if no
other action is taken, it initializes, by default, the internal environmental
variables to the appropriate locations on $BOOT.
EXAMPLES:
(1) if LAMBDA is started from the DESKTOP, on internal disk a:
[with an ATARI 1040ST], the following configuration is set:
home-drive = bin-drive = lib-drive = tmp-drive = $BOOT = a:
$BIN = a:\bin\
$LIB = a:\lib\
$TMP = a:\tmp\
$SHELL = a:\bin\<default-shell-type>sh.prg
$EDITOR = a:\bin\ed.prg
(2) if started from a SHELL, $BOOT becomes the SHELL's actual $cwd-drive,
no matter where is the SHELL located physically.
The BOOT-configuration can be altered in several ways, by calling LAMBDA
[or LAMBDA.TTP, as a DESKTOP program] with the appropriate option and/or
even at run-time (from the internal shell [META]).
The corresponding alteration flags are UN*X-like and the LAMBDA-options
affecting the drive-specifications, etc. are described below [as part of:
LAMBDA.ATARI.ST Technical Notes].
--------------------------------------------------------------------------
[LAMBDA.TN.001].ATARI.ST.[1.37][890226][Technical Note 001] LAMBDA-options
--------------------------------------------------------------------------
4. BOOTING LAMBDA WITH OPTIONS: lambda {, -bcefhilpstx<modifier> }
[0] The LAMBDA-options follow, in general, the UN*X option pattern:
format: -[lower-case-letter][upper-case-letter]<modifier>
For [TOS-only]: upper-case option/modifier specifications are
also allowed in order to accommodate the DESKTOP TTP-style calls.
defaults: [DEFAULT][DEFAULT-ON-FAILURE]
- if not specified explicitly, the <modifier> has a [DEFAULT]
- outside its legal range, a <modifier> has a [DEFAULT-ON-FAILURE]
[1] DRIVE-id specifications [TOS only]: options -behltx<drive>.
Following TOS, a legal <drive>-id ranges over [a-p][A-P]:
- an illegal specification restores the [DEFAULT-ON-FAILURE],
- if the modifier <drive> is absent, the [DEFAULT] is restored.
On BOOTing LAMBDA, the default-drive configuration is as follows:
- the OLD-DRIVE id = [DEFAULT-ON-FAILURE] is set to [a:] and
- the CURRENT-DRIVE id = [DEFAULT] is read off from the environment.
The LAMBDA-options -behltx<drive> alter the default setting to <drive>.
T